问题遇到的现象和发生背景
机器学习matlab相关问题,代码无错误matlab运行出问题了
遇到的现象和发生背景,请写出第一个错误信息
Error: File: Untitled2.m Line: 1 Column: 13The input character is not valid in MATLAB statements or expressions.
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
data = load("C:\Users\len\Desktop");
%%
%13个特征 先画出每一个特征对结果的图像
% MEDV: 自住房屋房价中位数(也就是均价)
Title = [
"CRIM: 城镇人均犯罪率"
"ZN: 住宅用地所占比例"
"INDUS: 城镇中非住宅用地所占比例"
"CHAS: 虚拟变量,用于回归分析"
"NOX: 环保指数"
"RM: 每栋住宅的房间数"
"AGE: 1940 年以前建成的自住单位的比例"
"DIS: 距离 5 个波士顿的就业中心的加权距离"
"RAD: 距离高速公路的便利指数"
"TAX: 每一万美元的不动产税率"
"PTRATIO: 城镇中的教师学生比例"
"B: 城镇中的黑人比例"
"LSTAT: 地区中有多少房东属于低收入人群"
"MEDV:中值"];
% 求维度之间的相关系数
rho = corr(data, 'type','pearson');
%热力图
figure(1) %热力图
string_name={'CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX','RTRATIO','B','LSTAT','MEDV'};
xvalues = string_name;
yvalues = string_name;
h = heatmap(xvalues,yvalues,rho, 'FontSize',10, 'FontName','Times New Roman');
h.Title = 'Correlation Coefficient';
h.ColorbarVisible = 'on';
h.ColorData = rho;
map = [1 1 1; 1 1 0; 0.5 1 0.4; 0.2 0.85 0.2; 0.4 0.7 1; 0.2 0.5 0.8]; % 自己定义颜色
colormap(map)
%colormap(jet)
figure(2)
%各特征与数据结果对应图
for i = 1:4
for j = 1:4
number = 4*(i-1)+j;
if(number>13)
break;
end
subplot(4,4,number);
scatter(data(:,number), data(:,14), 3);
title(Title(number));
end
end
%%
%数据分割 特征值 与 结果
X = [data(:,6), data(:,13)];
Y = data(:,14);
%数据归一化
%X = (mapminmax(X'))';
X = [ones(506,1),zscore(X)];%标准化
%Y = (mapminmax(Y'))';
[m,n] = size(X);
%构建模型
%1、Gradient_Descent
figure(2)
%初始化 θ -1 - 1
A = -1;B = 1;iterations = 50;
theta = A + (B-A) * rand(n, 1); %训练的参数
alpha = [0.001 0.003 0.007 0.01 0.05 0.1 0.2]; %学习率
oldtheta = theta;
J = zeros(1, iterations); %代价函数计算结果
[~, alpha_numbers] = size(alpha);
for a = 1:alpha_numbers
%参数更新
theta = oldtheta;
for iter = 1:iterations
%第i次迭代
H = X * theta; %预测结果
J(iter) = (H-Y)' * (H-Y) / 2 / m; %计算代价函数
for j = 1:n
theta(j) = theta(j) - alpha(a) * (X(:,j)'*(H - Y)) / n ;
end
end
%画图空间
[minJ, minIndex] = min(J);
subplot(3,3,a);
xlim([0 iterations]);
scatter(1:iterations, J, 3);
title("a="+num2str(alpha(a))+" Jmin="+num2str(minJ)+" Jiter="+num2str(minIndex));
end
% Normal_equation正规方程
subplot(3,3,9)
theta1 = (X'*X)^(-1) * X' * Y;
H = X * theta1; %预测结果
J = (H-Y)' * (H-Y) / 2 / m; %计算代价函数
%画图空间
xlim([0 iterations]);
scatter(1, J, 3);
title("Normal_equation"+" Jmin="+num2str(J));
%预测结果
Z = [X*theta1,Y];
figure(3)
scatter(Y,X*theta1,3);
hold on
plot([min(Y),max(Y)],[min(Y),max(Y)],'g')
运行结果及详细报错内容
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/085944071386188.png?x-oss-process=image/auto-orient,1/resize,w_320,m_lfit)
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/865864071386140.png?x-oss-process=image/auto-orient,1/resize,w_320,m_lfit)
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/132054071386141.png?x-oss-process=image/auto-orient,1/resize,w_320,m_lfit)
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
就是截图所示的问题显示无效字数
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
|